.TITLE DRDCP .IDENT /05/ ; ; Copyright (c) 1995-1999 by Mentec, Inc., U.S.A. ; All rights reserved ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED ; OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE. ; ; VERSION 05 ; ; D. N. CUTLER 5-SEP-73 ; ; PREVIOUSLY MODIFIED BY: ; ; T. J. MILLER ; ; MODIFIED BY: ; ; T. J. MILLER 6-JUN-77 ; ; TM088 -- CLEAR CHECKPOINT PCB WORD ON DISABLE CHECK- ; POINTING. ; ; T. J. MILLER 14-AUG-77 ; ; TM099 -- REMOVE UNEEDED CONDITIONALIZATION FOR RSX-11M+. ; ; T. J. MILLER 7-FEB-78 ; ; TM122 -- DISABLE CHECKPOINTING IN PCB. ; ; DISABLE/ENABLE CHECKPOINTING DIRECTIVES ; ; MACRO LIBRARY CALLS ; .MCALL TCBDF$ TCBDF$ ;DEFINE TASK CONTROL BLOCK OFFSETS ;+ ; **-$DRDCP-DISABLE CHECKPOINTING ; ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO DISABLE THE CHECKPOINTABILITY ; OF THE ISSUING TASK. ; ; DPB FORMAT: ; ; WD. 00 -- DIC(95.),DPB SIZE(1.). ; ; INPUTS: ; ; R2=ADDRESS OF THE TASK STATUS WORD OF THE CURRENT TASK. ; R3=ADDRESS OF THE LAST WORD IN THE DPB+2. ; R4=ADDRESS OF THE HEADER OF THE CURRENT TASK. ; R5=ADDRESS OF THE TCB OF THE CURRENT TASK. ; ; OUTPUTS: (DIRECTIVE STATUS AND PS RETURNED TO TASK). ; ; C=0 IF DIRECTIVE IS SUCCESSFULLY COMPLETED. ; DIRECTIVE STATUS OF +1 IS RETURNED. ; C=1 IF DIRECTIVE IS REJECTED. ; DIRECTIVE STATUS OF 'D.RS8' IS RETURNED IF CHECKPOINTING ; IS ALREADY DISABLED FOR ISSUING TASK. ; DIRECTIVE STATUS OF 'D.RS10' IS RETURNED IF THE ISSUING ; TASK IS NOT CHECKPOINTABLE. ;- .ENABL LSB $DRDCP::BIT #T2.CHK,(R2) ;TASK CHECKPOINTABLE? BNE 20$ ;IF NE NO MOV T.PCB(R5),R0 ;POINT TO TASK PCB BIT #PS.CHK,P.STAT(R0) ;CHECKPOINTING ALREADY DISABLED? BNE 30$ ;IF NE YES BIS #PS.CHK,P.STAT(R0) ;DISABLE CHECKPOINTING .IF DF C$$INT CLR P.DPCB(R0) ;CLEAR DISK PCB ADDRESS .ENDC 10$: RETURN ;RETURN DIRECTIVE STATUS OF +1 20$: DRSTS D.RS10 ;SET DIRECTIVE STATUS ;+ ; **-$DRECP-ENABLE CHECKPOINTING ; ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO ENABLE THE CHECKPOINTABILITY ; OF THE ISSUING TASK. ; ; DPB FORMAT: ; ; WD. 00 -- DIC(97.),DPB SIZE(1.). ; ; INPUTS: ; ; R2=ADDRESS OF THE TASK STATUS WORD OF THE CURRENT TASK. ; R3=ADDRESS OF THE LAST WORD IN THE DPB+2. ; R4=ADDRESS OF THE HEADER OF THE CURRENT TASK. ; R5=ADDRESS OF THE TCB OF THE CURRENT TASK. ; ; OUTPUTS: (DIRECTIVE STATUS AND PS RETURNED TO TASK) ; ; C=0 IF DIRECTIVE IS SUCCESSFULLY COMPLETED. ; DIRECTIVE STATUS OF +1 IS RETURNED. ; C=1 IF DIRECTIVE IS REJECTED. ; DIRECTIVE STATUS OF 'D.RS8' IS RETURNED IF CHECKPOINTING ; IS ALREADY ENABLED. ;- $DRECP::BIT #T2.CHK,(R2) ;IS TASK CHECKPOINTABLE? BNE 30$ ;IF NE NO MOV T.PCB(R5),R0 ;POINT TO TASK PCB BIT #PS.CHK,P.STAT(R0) ;CHECKPOINTING DISABLED? BEQ 30$ ;IF EQ YES .IF DF C$$INT TST P.DPCB(R0) ;IS TASK CONNECTED TO INTERRUPTS? BNE 30$ ;IF NE YES, CANNOT ENABLE CKP .ENDC BIC #PS.CHK,P.STAT(R0) ;ENABLE CHECKPOINTING CALLR $NXTSK ;REASSIGN PARTITION IF NECESSARY 30$: DRSTS D.RS8 ;SET DIRECTIVE STATUS .DSABL LSB .END